<template>
  <upload-excel :on-success="handleSuccess" />
</template>

<script>
import { reqImportEmployee } from '@/api/employees'
export default {
  name: 'Import',
  computed: {
    type() {
      return this.$route.query.type
    }
  },
  mounted() {
    // console.log(this.$route)
    // console.log(this.$route.query.type)
    // console.log(this.type)
    console.log(this.formatExcelDate(43535, '-'))
  },
  methods: {
    formatExcelDate(numb, format) {
      // 这里的减一和闰年有关系，如果详细要做闰年判断
      const time = new Date((numb) * 24 * 3600000 + 1) // 毫秒
      // const time = new Date((numb - 1) * 24 * 3600000 + 1) // 毫秒
      time.setYear(time.getFullYear() - 70)
      const year = time.getFullYear() + ''
      const month = time.getMonth() + 1 + ''
      const date = time.getDate() - 1 + ''
      if (format && format.length === 1) {
        return year + format + (month < 10 ? '0' + month : month) + format + (date < 10 ? '0' + date : date)
      }
      return year + (month < 10 ? '0' + month : month) + (date < 10 ? '0' + date : date)
    },
    //  调用批量导入接口，需要注意对象数组，对象的键必须是英文的
    // 但我们导入的对象是中文 所以要处理
    // 先把body的数据，对象数组拼出来
    async handleSuccess({ results, header }) {
      if (this.type === 'user') {
        const userRelations = {
          '入职日期': 'timeOfEntry',
          '手机号': 'mobile',
          '姓名': 'username',
          '转正日期': 'correctionTime',
          '工号': 'workNumber'
        }
        console.log(results, header)
        const data = []
        results.forEach(item => {
          // console.log(item)
          const obj = {}
          for (const key in item) {
            // key是中文的 需要转成英文的key
            const englishKey = userRelations[key]
            // console.log(userRelations[key])
            // console.log(key, item[key])
            // console.log(obj[englishKey])

            if (['timeOfEntry', 'correctionTime'].includes(englishKey)) {
              // 看是转正日期还是入职时间
              obj[englishKey] = this.formatExcelDate(item[key])
            } else {
              obj[englishKey] = item[key]
            }
          }
          data.push(obj)
        })
        console.log(data)
        await reqImportEmployee(data)
        this.$router.back()
      }
    }
  }
}
</script>

<style>

</style>
